#ifndef __DISPLAY_DIR_H__
#define __DISPLAY_DIR_H__
#include <stdlib.h>
#include "display_dev.h"
#include "freetype_dir.h"
#include "ui_manager.h"
/*
/*驱动总结构体
/*驱动名字 绑定的设备名字
/*驱动操作函数
/*使用方法：
/*			驱动通过名字绑定该设备
/*			初始化设备
/*			封装对应的设备画图函数
/*			调用即可
/*不合理的地方：
/*			目前封装的绘图函数只有描点
/*			后续还需要封装更多
*/

typedef struct Display_dir{
	char * name;
	pDisplay_dev  pcurrent_dev;
	
	pDisplay_dev (*find_dev)(char* name);
	int (*bind_dev)(char* name);
	int (*init_dev)(pDisplay_dev pcurrent_dev);
	pDisplay_dev_arg_t (*get_dev_args)(void);
	void (*clear_show)(pDisplay_dev pcurrent_dev,int x,int y,int width,int heigh);
	void (*show)(pDisplay_dev pcurrent_dev,int x,int y,unsigned int color);
	int  (*show_Font)(pFontBitMap_t current_FontBitMap,unsigned int color);	
	int  (*show_Font_Str)(pFontBitMap_t current_FontBitMap,wchar_t * cstr,unsigned int color);	
	int  (*show_Button)(pButton_t pcur_btn);
}Display_dir,*pDisplay_dir;


static pDisplay_dev find_name_to_dev(char * name);
static int bind_current_dev(char *name);
static int init_current_dev(pDisplay_dev pcurrent_dev);
static pDisplay_dev_arg_t get_current_dev_args(void);
static void dir_dev_show(pDisplay_dev pcurrent_dev,int x,int y,unsigned int color);
static void dev_clear_show(pDisplay_dev pcurrent_dev,int x,int y,int width,int heigh);
static int show_Freetype(pFontBitMap_t current_FontBitMap,unsigned int color);
static int show_Freetype_Str(pFontBitMap_t current_FontBitMap,wchar_t * cstr,unsigned int color);	
static int show_Button_regin(pButton_t pcur_btn);

extern Font_Dir_t freetype;



#endif 

